/*
 * Title: 信息编码（Message Decoding）
 * Author: Yuanshun L
 * Created: 01-Otc-2021
 * Note: Only one codeing head read and one coding text read.
 */

#include<stdio.h>
#include<string.h>
#include<math.h>



char code[8][1<<8]; // 二元组（len，val）对应一个字符

// 编码文本可能由多行组成
char read_char(){
    char c;
    while((c=getchar())=='\n' || c=='\r');
    return c;
}

// 填充code
void fill_code(){
    char c;
    int end=0; // end表示读取到末尾了
    // 首字符前可能有空白
    code[1][0] = read_char();
    // 编码头占一行，除了第一个字符之外都适合直接用getchar函数读取
    for(int i=2;i<8;i++){
        for(int j=0;j<(1<<i)-1;j++){
            if((c=getchar())==EOF || c=='\n' || c=='\r'){
                end=1;break;
            }
            else{
                code[i][j]=c;
            }
        }
        if(end) break;
    }
}

// 读取连续n个二进制位，然后转换为10进制后返回
int read_int(int n){
    int res=0;
    char c;

    while(n--){
        c=read_char();
        res = res*2 + c - '0';
    }
    return res;
}


int main() {
    int len=0,val=0;
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    memset(code,0,sizeof(code));
    fill_code();
    while(1){
        len=read_int(3);
        if(len==0){
            break;
        }
        while((val=read_int(len))<pow(2,len)-1){
            putchar(code[len][val]);
        }
    }
    return 0;
}
